﻿using System;
using System.Text;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;

using Microsoft.SharePoint;
using CodeArt.SharePoint.CamlQuery;
using System.Data;

namespace TestProject1
{
    /// <summary>
    /// SiteQueryTest 的摘要说明
    /// </summary>
    [TestClass]
    public class SiteQueryTest
    {
        public SiteQueryTest()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }

        #region 其他测试属性
        //
        // 您可以在编写测试时使用下列其他属性:
        //
        // 在运行类中的第一个测试之前使用 ClassInitialize 运行代码
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // 在类中的所有测试都已运行之后使用 ClassCleanup 运行代码
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // 在运行每个测试之前使用 TestInitialize 运行代码 
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // 在运行每个测试之后使用 TestCleanup 运行代码
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        [TestMethod]
        public void TestMethod1()
        {

            SPSite site = new SPSite("http://jyserver:81");

            SPList list = site.RootWeb.Lists["Notice"];

            SPSiteDataQuery q = new SPSiteDataQuery();

        }


        [TestMethod]
        public void TestLookupQuery()
        {

            SPSite site = new SPSite("http://codeartserver:83");

            SPList list = site.RootWeb.Lists["Users"];

            LookupQueryField userField = new LookupQueryField("User");

            var items = ListQuery.From(list).Where(userField == 1).GetItems();

            Assert.IsTrue(items.Count == 1);

        }

        [TestMethod]
        public void TestUserQuery()
        {
            SPSite site = new SPSite("http://jyserver:81");
            SPWeb web = site.RootWeb;

            SPList list = web.Lists["VacationRequest"];
            SPList list2 = web.Lists["VacationArchive"];

            int year = DateTime.Now.Year;

            DateTime yearBegin = new DateTime(year, 1, 1);
            DateTime yearEnd = new DateTime(year + 1, 1, 1);

            TypedQueryField<DateTime> createDtField = new TypedQueryField<DateTime>("BeginTime");

            TypedQueryField<SPUser> userField = new TypedQueryField<SPUser>("Author");

            QueryField dayCountField = new QueryField("TotalDayCount");

            SPUser user = web.SiteUsers["jyserver\\zjy"];

            //已经休假数据
            //DataTable vacationData =
            //    ListQuery.Select(userField, dayCountField)
            //    .From(new SPList[] { list, list2 } )
            //    .Where(userField == user)
            //    .GetDataTable();

            //Assert.IsTrue(vacationData.Rows.Count > 0);

        }

    }
}
